import "./core/patch/patch"
import GameConfig from "./GameConfig";
import AppConfig from "./core/config/AppConfig";
import PathConfig from "./core/config/PathConfig";
import LoginScene from "./moduleview/home/LoginView";
import { game } from "./core/game";
import { Context } from "./core/context/Context";
class Main {
	constructor() {
		//根据IDE设置初始化引擎		
		if (window["Laya3D"]) Laya3D.init(GameConfig.width, GameConfig.height);
		else Laya.init(GameConfig.width, GameConfig.height, Laya["WebGL"]);
		Laya["Physics"] && Laya["Physics"].enable();
		Laya["DebugPanel"] && Laya["DebugPanel"].enable();

		if (Laya.Browser.height / Laya.Browser.width < 1.8) {
			Laya.stage.scaleMode = "noscale";
			// Laya.stage.scaleMode = "fixedheight";
		} else {
			Laya.stage.scaleMode = "fixedwidth";
			// Laya.stage.scaleMode = "fixedheight";
		}
		// Laya.stage.scaleMode=GameConfig.scaleMode
		Laya.stage.screenMode = GameConfig.screenMode;
		Laya.stage.alignV = GameConfig.alignV;
		Laya.stage.alignH = GameConfig.alignH;

		PathConfig.init();

		//兼容微信不支持加载scene后缀场景 
		Laya.URL.exportSceneToJson = GameConfig.exportSceneToJson;

		//打开调试面板（通过IDE设置调试模式，或者url地址增加debug=true参数，均可打开调试面板）
		if (GameConfig.debug || Laya.Utils.getQueryString("debug") == "true") Laya.enableDebugPanel();
		if (GameConfig.physicsDebug && Laya["PhysicsDebugDraw"]) Laya["PhysicsDebugDraw"].enable();
		if (GameConfig.stat) Laya.Stat.show();
		Laya.alertGlobalError = false;

		if (!AppConfig.Debug || Laya.Browser.onMiniGame) { //是否读取外部地址的资源
			Laya.URL.basePath = PathConfig.AppResUrl;
		}

		//激活资源版本控制，version.json由IDE发布功能自动生成，如果没有也不影响后续流程
		Laya.ResourceVersion.enable("version.json", Laya.Handler.create(this, this.onVersionLoaded), Laya.ResourceVersion.FILENAME_VERSION);
	}

	onVersionLoaded(): void {
		//激活大小图映射，加载小图的时候，如果发现小图在大图合集里面，则优先加载大图合集，而不是小图
		Laya.AtlasInfoManager.enable("fileconfig.json", Laya.Handler.create(this, this.onConfigLoaded));
		// Laya.URL.basePath="comp/"
	}

	onConfigLoaded(): void {
		//加载IDE指定的场景
		// GameConfig.startScene && Laya.Scene.open(GameConfig.startScene);
		game.time.init(Date.now());
		game.ui.openScene(LoginScene);
		// cxt.get(UIManage).openScene(LoginScene);

	}
}
//激活启动类
new Main();
